# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Mario Kart 64 Template

game: Mario Kart 64
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.

Mario Kart 64:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  two_player:
    # (NOT YET SUPPORTED)
    # Start with two characters unlocked and shuffle a separate Player 2 set of item powers into the item pool.
    # 
    # This is the intended way to do local multiplayer, but you can still access the 2-player grand prix mode
    # with this off, and the 1-player grand prix mode with it on.
    'false': 50
    'true': 0

  game_mode:
    # Determines how to advance through the game. Cups is closest to the vanilla game.
    # 
    # Cups: Courses are raced in sets of four, place 4th or better to advance each race. Unlock each cup progressively.
    # The Cups victory condition is beating the Special Cup on 150cc.
    # 
    # Courses (NOT YET SUPPORTED): Each course is run individually. Unlock the final courses progressively to reach the
    # final race. The Courses victory condition is winning 1st place on the last course.
    cups: 50
    courses: 0

  locked_courses:
    # (NOT YET SUPPORTED)
    # In Courses Game Mode, how many final courses are locked until Progressive Course Unlock items are found.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 15
    4: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-15: 0 # random value between 0 and 15

  course_order:
    # The order for the courses to be arranged in.
    vanilla: 0
    shuffle: 50
    short_to_long: 0
    long_to_short: 0
    alphabetical: 0

  logic_difficulty:
    # Scales the logic threshhold where skill is involved. Specifically, how many good items are available before you
    # are expected to be able to qualify and win on tough courses.
    # 
    # Basic: Makes sure you have plenty of good items early. For easier play, or skipping 50 cc.
    # (Basic is more likely to fail generation. To raise chances try increasing shuffle_item_box_clusters and
    # minimum_filler_items. Future versions will be less fragile to generation failure.)
    # 
    # Advanced: Balanced runs for a competent karter.
    # 
    # Expert: Low logic, high randomness, high skill. Few good items may be available early in the run.
    # 
    # No Logic: If fences are enabled, THE RUN MAY BE NEAR IMPOSSIBLE!
    basic: 50
    advanced: 0
    expert: 0
    no_logic: 0

  final_course_pool:
    # When Course Order is set to shuffle, the final course will be chosen from the Final Course Pool.
    # Leaving this blank will allow any course to come last.
    # 
    # For Rainbow Road to come last use: ["Rainbow Road"].
    # 
    # For Bowser's Castle to come last use: ["Bowser's Castle"].
    # 
    # For any course longer than 1000 meters to come last use: ["Rainbow Road", "Wario Stadium", "Toad's Turnpike"].
    []

  mirror_course_chance:
    # (NOT YET SUPPORTED) Percent chance for a course to be mirrored.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  two_lap_courses:
    # Reduce the number of laps in a race from 3 to 2 on long courses.
    'off': 50
    rainbow_road: 0
    wario_stadium: 0
    rainbow_road_and_wario_stadium: 0

  hazard_locations:
    # Whether to include hazards which can be destroyed or defeated by the star power as location checks.
    'false': 0
    'true': 50

  secret_locations:
    # Whether to add 10 location checks as item pickups in noteworthy locations on certain courses.
    'false': 0
    'true': 50

  shuffle_drift_abilities:
    # Optionally shuffle into the item pool the ability to drift and the ability to use mini-turbos as progressive
    # unlocks per kart. "Plentiful" shuffles a 3rd progressive unlock into the pool. "Free Drift" means karts start
    # with the ability to drift. "Free mini-turbo" means both abilities will be obtained together.
    'off': 0
    'on': 50
    plentiful: 0
    free_drift: 0
    free_mini_turbo: 0

  add_traction_tires:
    # Optionally shuffle into the item pool the ability to have traction on off-road and winter surface types,
    # per kart. "Off" means karts always have traction, as in the vanilla game.
    'false': 0
    'true': 50

  add_starting_items:
    # Optionally shuffle into the item pool a random item power to start each race with, per kart. For example
    # Mario may be able to start each race with a blue shell. Which item is random per kart.
    'false': 0
    'true': 50

  shuffle_railings:
    # Whether to shuffle most track railings into the item pool.
    'false': 0
    'true': 50

  fences:
    # Adds colored fences to every course to add variety to the player's racing lines, and blocks about 20% of
    # item boxes. Also adds Yellow/Red/Green/Blue Switch items to the item pool which disable that color of fences.
    # Fences only affect player karts; shells and CPU karts path through them.
    'false': 0
    'true': 50

  feather_item:
    # Adds the feather item as seen in Super Mario Kart and the early demos of Mario Kart 64. It can be used to vault
    # fences. Having access to the feather puts locations blocked by fences in logic.
    'false': 0
    'true': 50

  shuffle_item_box_respawning:
    # Causes item boxes to not respawn mid-race, and shuffles one "item box respawning" item into the item pool.
    'false': 50
    'true': 0

  consistent_item_boxes:
    # Make each item box always give the same item. "On" will always show which item will be given instead of a
    # question mark (?) inside the item boxes. "Identify" will only show which item will be given after triggering the
    # item roulette once.
    'off': 50
    'on': 0
    identify: 0

  shuffle_special_item_boxes:
    # Whether to shuffle the special item boxes which always give blue shells into the item pool. One is attached to
    # the hot air balloon on Luigi Raceway, and the other is on the big rock on Koopa Troopa Beach.
    'false': 0
    'true': 50

  shuffle_item_box_clusters:
    # How many item box clusters to shuffle into the item pool. At least one item spot from each shuffled cluster will
    # be used as a location check.
    # (More shuffled clusters helps generation succeed. Future versions will be less fragile to generation failure.)
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 72
    36: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-72: 0 # random value between 0 and 72

  filler_trap_percentage:
    # What percentage of filler items will be traps.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  minimum_filler_items:
    # Force more filler items than needed to match the number of locations.
    # (More filler items helps generation succeed. Future versions will be less fragile to generation failure.)
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 40
    30: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-40: 0 # random value between 0 and 40

  fix_results_music:
    # Fixes the race win results screen music so the first section repeats 2 times, not 64 times.
    # The official soundtrack uses this AABB form.
    'false': 0
    'true': 50

  sound_mode:
    # (NOT YET SUPPORTED)
    # Sets the sound mode in the game's option menu ahead of time.
    stereo: 50
    headphones: 0
    mono: 0

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_inventory_from_pool:
    # Start with the specified amount of these items and don't place them in the world. Example: "Bomb: 1"
    # 
    # The game decides what the replacement items will be.
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
